import request from '@/utils/request'

// 获取站点下拉列表
export function getSiteList() {
  return request({
    url: '/dispatch/dispatch/duozhandianquxian/siteList',
    method: 'get'
  })
}

// 获取监测点下拉列表
export function getMonitorList() {
  return request({
    url: '/dispatch/dispatch/duozhandianquxian/monitorList',
    method: 'get'
  })
}

// 获取多站点压力变化曲线数据
export function getPressureTrend(params) {
  return request({
    url: '/dispatch/dispatch/duozhandianquxian/trend',
    method: 'get',
    params
  })
}

// 获取站点统计数据
export function getSiteStatistics(params) {
  return request({
    url: '/dispatch/dispatch/duozhandianquxian/site/stat',
    method: 'get',
    params
  })
}


// 获取区域下拉列表
export function getRegionList() {
  return request({
    url: '/dispatch/system/dispatchPressureSpecialSubject/regionList',
    method: 'get'
  })
}


/**
 * 获取监测量分组列表
 * @param {Object} params 查询参数
 * @param {string} [params.groupName] 分组名称
 * @returns {Promise} 请求结果
 */
export function listMonitorGroups(params) {
  return request({
    url: '/dispatch/web/group/list',
    method: 'get',
    params
  })
}

/**
 * 获取分组详细信息
 * @param {number} id 分组ID
 * @returns {Promise} 请求结果
 */
export function getMonitorGroupDetail(id) {
  return request({
    url: `/dispatch/web/group/${id}`,
    method: 'get'
  })
}

/**
 * 新增监测量分组
 * @param {Object} data 分组数据
 * @param {string} data.groupName 分组名称
 * @param {number} [data.isPublic] 是否公共(0私有/1公共)
 * @returns {Promise} 请求结果
 */
export function addMonitorGroup(data) {
  return request({
    url: '/dispatch/web/group',
    method: 'post',
    data
  })
}

/**
 * 修改监测量分组
 * @param {Object} data 分组数据
 * @param {number} data.id 分组ID
 * @param {string} [data.groupName] 分组名称
 * @param {number} [data.isPublic] 是否公共(0私有/1公共)
 * @returns {Promise} 请求结果
 */
export function updateMonitorGroup(data) {
  return request({
    url: '/dispatch/web/group',
    method: 'put',
    data
  })
}

/**
 * 删除监测量分组
 * @param {Array<number>} ids 分组ID数组
 * @returns {Promise} 请求结果
 */
export function deleteMonitorGroups(ids) {
  return request({
    url: `/dispatch/web/group/${ids}`,
    method: 'delete'
  })
}

/**
 * 获取分组下的监测量列表
 * @param {number} groupId 分组ID
 * @returns {Promise} 请求结果
 */
export function listGroupItems(groupId) {
  return request({
    url: `/dispatch/web/group/${groupId}/items`,
    method: 'get'
  })
}

/**
 * 获取监测量下拉列表
 * @returns {Promise} 请求结果
 */
export function listMonitorItems(groupId) {
  return request({
    url: '/dispatch/web/group/items/list/' + groupId,
    method: 'get'
  })
}

/**
 * 添加监测量到分组
 * @param {Object} data 添加数据
 * @param {number} data.groupId 分组ID
 * @param {Array<number>} data.itemIds 监测量ID数组
 * @returns {Promise} 请求结果
 */
export function addItemsToGroup(data) {
  return request({
    url: '/dispatch/web/group/add/items',
    method: 'post',
    data
  })
}

/**
 * 从分组移除监测量
 * @param {number} id 分组监测量关联ID
 * @returns {Promise} 请求结果
 */
export function deleteItemFromGroup(id) {
  return request({
    url: `/dispatch/web/group/delete/items/${id}`,
    method: 'delete'
  })
}